home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 2011-06-09 | 35.9 KB | 1,339 lines
function AddLifeFunc() { var _loc1_ = Math.floor(game.totalScores / lifeUpNum); if(_loc1_ != addLife) { addLife++; game.totalLives = game.totalLives + 1; _root.heroLife = _root.heroLife + 1; below_mask.lifeShow = game.totalLives; } } function buildMap(map) { below_mask.gateShow = game.currentGate; _root.attachMovie("empty","tiles",1); game.clip = _root.tiles; var bgName = "gate" + game.currentGate + "_" + "bg" + game.currentMap; game.clip.attachMovie(bgName,bgName,4000); game.clip[bgName]._x = 40; var bgMaskName = "gate" + game.currentGate + "_" + "bg" + game.currentMap + "_mask"; game.clip.attachMovie(bgMaskName,bgMaskName,19000); game.clip[bgMaskName]._x = 40; game.clip._x = -40; if(game.currentMap != game.totalMap) { game.clip._y = -80; game.clip[bgName]._y = 80; game.clip[bgMaskName]._y = 80; } else { game.clip._y = -40; game.clip[bgName]._y = 40; game.clip[bgMaskName]._y = 40; } var mapWidth = map[0].length; var mapHeight = map.length; var k = 5000; var _loc3_ = 0; while(_loc3_ < mapHeight) { var _loc2_ = 0; while(_loc2_ < mapWidth) { var _loc1_ = "t_" + _loc3_ + "_" + _loc2_; game[_loc1_] = new game["Tile" + map[_loc3_][_loc2_]](); game.clip.attachMovie("tile",_loc1_,k); game.clip[_loc1_]._x = _loc2_ * game.tileW; game.clip[_loc1_]._y = _loc3_ * game.tileH; game.clip[_loc1_].gotoAndStop(game[_loc1_].frame); if(game[_loc1_].item != "") { game.clip[_loc1_].attachMovie(game[_loc1_].item,"item",k); } k++; _loc2_ = _loc2_ + 1; } _loc3_ = _loc3_ + 1; } game.items = myItems[game.currentMap]; _loc3_ = 0; while(_loc3_ < game.items.length) { _loc1_ = "item" + game.items[_loc3_][2] + "_" + game.items[_loc3_][1]; game[_loc1_] = new game["Item" + game.items[_loc3_][0]](); game[_loc1_].position = _loc3_; game.clip.attachMovie("items",_loc1_,10001 + _loc3_); game[_loc1_].clip = game.clip[_loc1_]; game[_loc1_].clip._x = game.items[_loc3_][1] * game.tileW + game.tileW / 2; game[_loc1_].clip._y = game.items[_loc3_][2] * game.tileH + game.tileH / 2; game[_loc1_].clip.gotoAndStop(game.items[_loc3_][0]); _loc3_ = _loc3_ + 1; } var enemies = myEnemies[game.currentMap]; game.currentEnemies = []; _loc3_ = 0; while(_loc3_ < enemies.length) { _loc1_ = "enemy" + _loc3_; game[_loc1_] = new game["Enemyp" + enemies[_loc3_][0]](); game[_loc1_].type = enemies[_loc3_][0]; game[_loc1_].id = _loc3_; game.currentEnemies.push(game[_loc1_]); game.clip.attachMovie("enemy" + enemies[_loc3_][0],_loc1_,11001 + _loc3_); game[_loc1_].clip = game.clip[_loc1_]; game[_loc1_].xtile = enemies[_loc3_][1]; game[_loc1_].ytile = enemies[_loc3_][2]; game[_loc1_].width = game.clip[_loc1_]._width / 2; game[_loc1_].height = game.clip[_loc1_]._height / 2; game[_loc1_].x = game[_loc1_].xtile * game.tileW + game.tileW / 2; game[_loc1_].y = (game[_loc1_].ytile + 1) * game.tileH - game[_loc1_].height; game[_loc1_].clip._x = game[_loc1_].x; game[_loc1_].clip._y = game[_loc1_].y; _loc3_ = _loc3_ + 1; } game.movingtiles = myMovingTiles[game.currentMap]; _loc3_ = 0; while(_loc3_ < game.movingtiles.length) { _loc1_ = "movingtile" + _loc3_; game[_loc1_] = new game["MovingTilep" + game.movingtiles[_loc3_][0]](); game.clip.attachMovie("movingtiles",_loc1_,13001 + _loc3_); game[_loc1_].clip = game.clip[_loc1_]; game[_loc1_].clip.gotoAndStop(game.movingtiles[_loc3_][0]); game[_loc1_].xtile = game.movingtiles[_loc3_][1]; game[_loc1_].ytile = game.movingtiles[_loc3_][2]; game[_loc1_].x = game[_loc1_].xtile * game.tileW + game.tileW / 2; game[_loc1_].y = game[_loc1_].ytile * game.tileH + game.tileH / 2; game[_loc1_].clip._x = game[_loc1_].x; game[_loc1_].clip._y = game[_loc1_].y; game[_loc1_].minx += game[_loc1_].xtile; game[_loc1_].maxx += game[_loc1_].xtile; game[_loc1_].miny += game[_loc1_].ytile; game[_loc1_].maxy += game[_loc1_].ytile; _loc3_ = _loc3_ + 1; } game.clip.attachMovie("char","char",10000); char.clip = game.clip.char; if(char.undead == true) { char.clip._alpha = 0; } char.width = char.clip._width / 2; char.height = char.clip._height / 2; char.x = char.xtile * game.tileW + game.tileW / 2; char.y = (char.ytile + 1) * game.tileH - char.height; char.clip._x = char.x; char.clip._y = char.y; char.clip.gotoAndStop(char.frame); if(game.currentMap == game.totalMap) { game.clip.attachMovie("gateDoor","gateDoor",9999); game.clip.gateDoor._x = game.tileW * game.gateDoorX; game.clip.gateDoor._y = game.tileH * game.gateDoorY; } } function addChar() { game.clip.attachMovie("char","char",10000); char.clip = game.clip.char; char.clip._alpha = 0; char.undead = true; char.width = char.clip._width / 2; char.height = char.clip._height / 2; char.x = char.xtile * game.tileW + game.tileW / 2; char.y = (char.ytile + 1) * game.tileH - char.height; char.clip._x = char.x; char.clip._y = char.y; char.clip.gotoAndStop(char.frame); } function changeMap(ob) { var _loc2_ = ob; var _loc3_ = []; var _loc1_ = 0; while(_loc1_ < game.items.length) { if(game.items[_loc1_]) { var name = "item" + game.items[_loc1_][2] + "_" + game.items[_loc1_][1]; delete game[name]; _loc3_.push(game.items[_loc1_]); } _loc1_ = _loc1_ + 1; } myItems[game.currentMap] = _loc3_; var name = "t_" + _loc2_.ytile + "_" + _loc2_.xtile; game.currentMap = game[name].newmap; _loc2_.xtile = _loc2_.xtile; game.oldMap = game[name].oldmap; if(game.currentMap < game.oldMap) { _loc2_.ytile = 1; } else { _loc2_.ytile = 9; } _loc2_.frame = _loc2_.clip._currentframe; var charAlpha = char.clip._alpha; buildMap(_root["myMap" + game.currentMap]); char.clip._alpha = charAlpha; } function getMyCorners(x, y, ob) { var _loc1_ = ob; _loc1_.downY = Math.floor((y + _loc1_.height - 1) / game.tileH); _loc1_.upY = Math.floor((y - _loc1_.height) / game.tileH); _loc1_.leftX = Math.floor((x - _loc1_.width) / game.tileW); _loc1_.rightX = Math.floor((x + _loc1_.width - 1) / game.tileW); _loc1_.upleft = game["t_" + _loc1_.upY + "_" + _loc1_.leftX].walkable; _loc1_.downleft = game["t_" + _loc1_.downY + "_" + _loc1_.leftX].walkable; _loc1_.upright = game["t_" + _loc1_.upY + "_" + _loc1_.rightX].walkable; _loc1_.downright = game["t_" + _loc1_.downY + "_" + _loc1_.rightX].walkable; } function moveChar(ob, dirx, diry, fly) { var _loc1_ = ob; var _loc2_ = diry; var _loc3_ = dirx; if(_loc3_ != 0) { _loc1_.dirx = _loc3_; } if(Math.abs(fly) == 1) { speed = _loc1_.flyspeed * fly; } else { speed = _loc1_.speed; } _loc1_.lasty = _loc1_.y; getMyCorners(_loc1_.x,_loc1_.y + speed * _loc2_,_loc1_); if(_loc2_ == -1) { if(_loc1_.upleft && _loc1_.upright) { _loc1_.y += speed * _loc2_; } else { _loc1_.y = _loc1_.ytile * game.tileH + _loc1_.height; _loc1_.flyspeed = 0; } } if(_loc2_ == 1) { if(_loc1_.downleft && _loc1_.downright && !checkMovingTiles(speed * _loc2_)) { _loc1_.y += speed * _loc2_; } else if(_loc1_.downleft == undefined && _loc1_.downright == undefined && !checkMovingTiles(speed * _loc2_)) { _loc1_.y += speed * _loc2_; } else { if(_loc1_.onMovingTile) { _loc1_.y = _loc1_.onMovingTile.y - _loc1_.onMovingTile.height - _loc1_.height; } else if(_loc1_.ytile + 2 == _loc1_.downY) { _loc1_.y = (_loc1_.ytile + 2) * game.tileH - _loc1_.height; } else { _loc1_.y = (_loc1_.ytile + 1) * game.tileH - _loc1_.height; } _loc1_.fly = false; } } getMyCorners(_loc1_.x + speed * _loc3_,_loc1_.y,_loc1_); if(_loc3_ == -1) { if(_loc1_.downleft && _loc1_.upleft) { _loc1_.x += speed * _loc3_; fall(_loc1_); } else { _loc1_.x = _loc1_.xtile * game.tileW + _loc1_.width; } } if(_loc3_ == 1) { if(_loc1_.upright && _loc1_.downright) { _loc1_.x += speed * _loc3_; fall(_loc1_); } else { _loc1_.x = (_loc1_.xtile + 1) * game.tileW - _loc1_.width; } } updateChar(_loc1_,_loc3_,_loc2_); return true; } function moveChar2(ob, dirx, diry, jump) { var _loc1_ = ob; var _loc2_ = dirx; var _loc3_ = diry; if(_loc2_ != 0) { _loc1_.dirx = _loc2_; } if(Math.abs(jump) == 1) { speed = _loc1_.jumpspeed * jump; } else { speed = _loc1_.speed; } getMyCorners(_loc1_.x,_loc1_.y + speed * _loc3_,_loc1_); if(_loc3_ == -1) { if(_loc1_.upleft && _loc1_.upright) { _loc1_.y += speed * _loc3_; } else { _loc1_.y = _loc1_.ytile * game.tileH + _loc1_.height; _loc1_.jumpspeed = 0; } } if(_loc3_ == 1) { if(_loc1_.downleft && _loc1_.downright && !checkMovingTiles(speed * _loc3_)) { _loc1_.y += speed * _loc3_; } else { _loc1_.y = (_loc1_.ytile + 1) * game.tileH - _loc1_.height; _loc1_.jump = false; } } getMyCorners(_loc1_.x + speed * _loc2_,_loc1_.y,_loc1_); if(_loc2_ == -1) { if(_loc1_.downleft && _loc1_.upleft) { _loc1_.x += speed * _loc2_; fall2(_loc1_); } else { _loc1_.x = _loc1_.xtile * game.tileW + _loc1_.width; } } if(_loc2_ == 1) { if(_loc1_.upright && _loc1_.downright) { _loc1_.x += speed * _loc2_; fall2(_loc1_); } else { _loc1_.x = (_loc1_.xtile + 1) * game.tileW - _loc1_.width; } } updateChar(_loc1_,_loc2_,_loc3_); return true; } function moveChar3(ob, dirx, diry, fly) { var _loc1_ = ob; var _loc2_ = dirx; if(_loc2_ != 0) { _loc1_.dirx = _loc2_; } speed = _loc1_.speed; getMyCorners(_loc1_.x + speed * _loc2_,_loc1_.y,_loc1_); if(_loc1_.speed > 0) { if(_loc2_ == -1) { if(_loc1_.downleft && _loc1_.upleft) { _loc1_.x += speed * _loc2_; } else { _loc1_.clip._xscale = - _loc1_.clip._xscale; _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } if(_loc2_ == 1) { if(_loc1_.upright && _loc1_.downright) { _loc1_.x += speed * _loc2_; } else { _loc1_.clip._xscale = - _loc1_.clip._xscale; _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } } if(_loc1_.speed < 0) { if(_loc2_ == 1) { if(_loc1_.downleft && _loc1_.upleft) { _loc1_.x += speed * _loc2_; } else { _loc1_.clip._xscale = - _loc1_.clip._xscale; _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } if(_loc2_ == -1) { if(_loc1_.upright && _loc1_.downright) { _loc1_.x += speed * _loc2_; } else { _loc1_.clip._xscale = - _loc1_.clip._xscale; _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } } updateChar(_loc1_,_loc2_,diry); return true; } function moveChar4(ob, dirx, diry) { var _loc1_ = ob; var _loc2_ = dirx; speed = _loc1_.speed; getMyCorners(_loc1_.x + speed * _loc2_,_loc1_.y,_loc1_); if(_loc1_.speed > 0) { if(_loc2_ == -1) { if(_loc1_.upleft) { _loc1_.x += speed * _loc2_; } else { _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } if(_loc2_ == 1) { if(_loc1_.upright) { _loc1_.x += speed * _loc2_; } else { _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } } if(_loc1_.speed < 0) { if(_loc2_ == 1) { if(_loc1_.upleft) { _loc1_.x += speed * _loc2_; } else { _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } if(_loc2_ == -1) { if(_loc1_.upright) { _loc1_.x += speed * _loc2_; } else { _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } } updateChar(_loc1_,_loc2_,diry); return true; } function checkMovingTiles(y) { var heroymax = char.y + char.height + y; var heroxmax = char.x + char.width; var heroxmin = char.x - char.width; foundit = false; var _loc2_ = 0; while(_loc2_ < game.movingtiles.length) { var _loc1_ = game["movingtile" + _loc2_]; var tileymax = _loc1_.y + _loc1_.height; var _loc3_ = _loc1_.y - _loc1_.height; var tilexmax = _loc1_.x + _loc1_.width; var _loc3 = _loc1_.x - _loc1_.width; if(char.lasty + char.height <= _loc3_) { if(heroymax <= tileymax && heroymax >= _loc3_) { if(heroxmax > _loc3 && heroxmax < tilexmax) { char.onMovingTile = _loc1_; foundit = true; break; } if(heroxmin > _loc3 && heroxmin < tilexmax) { char.onMovingTile = _loc1_; foundit = true; break; } } } _loc2_ = _loc2_ + 1; } return foundit; } function moveTiles() { var _loc2_ = 0; while(_loc2_ < game.movingtiles.length) { var _loc1_ = game["movingtile" + _loc2_]; getMyCorners(_loc1_.x + _loc1_.speed * _loc1_.dirx,_loc1_.y + _loc1_.speed * _loc1_.diry,_loc1_); if(_loc1_.miny > _loc1_.upY || _loc1_.maxy < _loc1_.downY) { _loc1_.diry = - _loc1_.diry; } if(_loc1_.minx > _loc1_.leftX || _loc1_.maxx < _loc1_.rightX) { _loc1_.dirx = - _loc1_.dirx; } _loc1_.x += _loc1_.speed * _loc1_.dirx; _loc1_.y += _loc1_.speed * _loc1_.diry; _loc1_.xtile = Math.floor(_loc1_.x / game.tileW); _loc1_.ytile = Math.floor(_loc1_.y / game.tileH); _loc1_.clip._x = _loc1_.x; _loc1_.clip._y = _loc1_.y; if(_loc1_.diry == -1) { checkMovingTiles(0); } _loc2_ = _loc2_ + 1; } if(char.onMovingTile) { getMyCorners(char.x,char.y + char.onMovingTile.speed * char.onMovingTile.diry,char); if(char.onMovingTile.diry == -1) { if(char.upleft && char.upright) { char.y = char.onMovingTile.y - char.onMovingTile.height - char.height; } else { char.y = char.ytile * game.tileH + char.height; char.jumpspeed = 0; char.jump = true; char.onMovingTile = false; } } if(char.onMovingTile.diry == 1) { if(char.downleft && char.downright) { char.y = char.onMovingTile.y - char.onMovingTile.height - char.height; } else { char.onMovingTile = false; char.y = (char.ytile + 1) * game.tileH - char.height; } } getMyCorners(char.x + char.onMovingTile.speed * char.onMovingTile.dirx,char.y,char); if(char.onMovingTile.dirx == -1) { if(char.downleft && char.upleft) { char.x += char.onMovingTile.speed * char.onMovingTile.dirx; } else { char.x = char.xtile * game.tileW + char.width; fall(char); } } if(char.onMovingTile.dirx == 1) { if(char.upright && char.downright) { char.x += char.onMovingTile.speed * char.onMovingTile.dirx; } else { fall(char); char.x = (char.xtile + 1) * game.tileW - char.width; } } updateChar(char); } } function updateChar(ob, dirx, diry) { var _loc1_ = ob; var _loc3_ = _root; _loc1_.clip._x = _loc1_.x; _loc1_.clip._y = _loc1_.y; _loc1_.xtile = Math.floor(_loc1_.clip._x / game.tileW); _loc1_.ytile = Math.floor(_loc1_.clip._y / game.tileH); if(game["t_" + _loc1_.ytile + "_" + _loc1_.xtile].door && _loc1_ == _loc3_.char) { changeMap(_loc1_); } var _loc2_ = game["item" + _loc1_.ytile + "_" + _loc1_.xtile]; if(_loc2_ && _loc1_ == _loc3_.char) { if(_loc2_.typeNum == 1) { below_mask.bottleShow = below_mask.bottleShow + 1; game.havingBottle += 1; effectSoundFunc("bottle"); } else if(_loc2_.typeNum == 2) { game.totalScores += 200; AddLifeFunc(); _loc3_.below_mask.scoreShow = game.totalScores; effectSoundFunc("coin2"); } else if(_loc2_.typeNum == 3) { game.totalScores += 100; AddLifeFunc(); _loc3_.below_mask.scoreShow = game.totalScores; effectSoundFunc("coin1"); } else if(_loc2_.typeNum == 4) { game.totalScores += 300; AddLifeFunc(); _loc3_.below_mask.scoreShow = game.totalScores; effectSoundFunc("coin3"); } else if(_loc2_.typeNum == 5) { game.totalScores += 400; AddLifeFunc(); _loc3_.below_mask.scoreShow = game.totalScores; effectSoundFunc("coin4"); } else if(_loc2_.typeNum == 6) { game.totalScores += 500; AddLifeFunc(); _loc3_.below_mask.scoreShow = game.totalScores; effectSoundFunc("coin5"); } else if(_loc2_.typeNum == 7) { game.totalScores += 1000; AddLifeFunc(); _loc3_.below_mask.scoreShow = game.totalScores; effectSoundFunc("coin6"); } else if(_loc2_.typeNum == 8) { below_mask.btn1._visible = true; effectSoundFunc("other1"); } else if(_loc2_.typeNum == 9) { below_mask.btn2._visible = true; effectSoundFunc("other2"); } else if(_loc2_.typeNum == 10) { below_mask.btn3._visible = true; effectSoundFunc("other3"); } else if(_loc2_.typeNum == 11) { below_mask.btn4._visible = true; effectSoundFunc("other4"); } removeMovieClip(_loc2_.clip); game.items[_loc2_.position] = 0; delete game["item" + _loc1_.ytile + "_" + _loc1_.xtile]; } } function jump(ob) { var _loc1_ = ob; _loc1_.jumpspeed += _loc1_.gravity; if(_loc1_.jumpspeed > game.tileH) { _loc1_.jumpspeed = game.tileH; } var _loc2_ = 0; if(Key.isDown(39)) { _loc2_ = 1; } if(Key.isDown(37)) { _loc2_ = -1; } if(_loc1_.jumpspeed < 0) { moveChar2(_loc1_,_loc2_,-1,-1); } else if(_loc1_.jumpspeed > 0) { moveChar2(_loc1_,_loc2_,1,1); } } function fly(ob) { var _loc1_ = ob; _loc1_.flyspeed += _loc1_.gravity; if(_loc1_.flyspeed > game.tileH) { _loc1_.flyspeed = game.tileH; } if(_loc1_.flyspeed < 0) { moveChar(_loc1_,0,-1,-1); } else if(_loc1_.flyspeed > 0) { moveChar(_loc1_,0,1,1); } } function fall(ob) { var _loc1_ = ob; if(!_loc1_.fly) { getMyCorners(_loc1_.x,_loc1_.y + 1,_loc1_); if(_loc1_.downleft && _loc1_.downright && !checkMovingTiles(1)) { _loc1_.flyspeed = 0; _loc1_.fly = true; _loc1_.onMovingTile = false; _loc1_.climb = false; } } } function fall2(ob) { var _loc1_ = ob; if(!_loc1_.jump) { getMyCorners(_loc1_.x,_loc1_.y + 1,_loc1_); if(_loc1_.downleft && _loc1_.downright && !checkMovingTiles(1)) { _loc1_.jumpspeed = 0; _loc1_.onMovingTile = false; _loc1_.climb = false; } } } function checkUpLadder(ob) { var _loc1_ = ob; var _loc2_ = Math.floor((_loc1_.y + _loc1_.height - 1) / game.tileH); var _loc2 = Math.floor((_loc1_.y - _loc1_.height) / game.tileH); var upLadder = game["t_" + _loc2 + "_" + _loc1_.xtile].ladder; var _loc3_ = game["t_" + _loc2_ + "_" + _loc1_.xtile].ladder; if(upLadder || _loc3_) { return true; } _loc1_.climb = false; fall2(_loc1_); } function checkDownLadder(ob) { var _loc1_ = ob; var _loc3_ = Math.floor((_loc1_.speed + _loc1_.y + _loc1_.height) / game.tileH); var _loc2_ = game["t_" + _loc3_ + "_" + _loc1_.xtile].ladder; if(_loc2_) { return true; } } function climb(ob, diry) { var _loc1_ = ob; _loc1_.climb = true; _loc1_.fly = false; _loc1_.jump = false; _loc1_.y += _loc1_.speed * diry + 1; _loc1_.x = _loc1_.xtile * game.tileW + game.tileW / 2; updateChar(_loc1_,0,diry); return true; } function enemyBrain() { var _loc2_ = 0; while(_loc2_ < game.currentEnemies.length) { if(game.currentEnemies[_loc2_].type >= 1 && game.currentEnemies[_loc2_].type <= 5) { var name = "enemy" + _loc2_; var _loc1_ = game[name]; getMyCorners(_loc1_.x + _loc1_.speed * _loc1_.xMove,_loc1_.y + _loc1_.speed * _loc1_.yMove + 1,_loc1_); if(!_loc1_.downleft && !_loc1_.downright) { moveChar3(_loc1_,_loc1_.xMove,_loc1_.yMove); } else { _loc1_.clip._xscale = - _loc1_.clip._xscale; _loc1_.xMove = - _loc1_.xMove; _loc1_.yMove = - _loc1_.yMove; } } if(game.currentEnemies[_loc2_].type == 6 || game.currentEnemies[_loc2_].type == 7) { var name = "enemy" + _loc2_; _loc1_ = game[name]; moveChar4(_loc1_,_loc1_.xMove,_loc1_.yMove); } var xdist = _loc1_.x - char.x; var _loc3_ = _loc1_.y - char.y; if(char.unDead == false && Math.sqrt(xdist * xdist + _loc3_ * _loc3_) < _loc1_.width + char.width) { game.totalLives--; _root.heroLife--; below_mask.lifeShow = game.totalLives; if(game.totalLives <= 0) { _root.gameOver(); } else { _root.addChar(); } } _loc2_ = _loc2_ + 1; } } function shoot(ob) { var _loc2_ = ob; _loc2_.lastshot = getTimer(); game.bulletcounter = game.bulletcounter + 1; if(game.bulletcounter == 5) { game.bulletcounter = 0; _root.char.havinggun = false; } var _loc1_ = "bullet" + game.bulletcounter; game[_loc1_] = new game.Bullet(); game[_loc1_].id = game.bulletcounter; game.bullets.push(game[_loc1_]); if(_loc2_.dirx || _loc2_.diry) { game[_loc1_].dirx = _loc2_.dirx; game[_loc1_].diry = _loc2_.diry; } game[_loc1_].xtile = _loc2_.xtile; game[_loc1_].ytile = _loc2_.ytile; game.clip.attachMovie("bullet",_loc1_,12000 + game.bulletcounter); game[_loc1_].clip = game.clip[_loc1_]; game[_loc1_].x = _loc2_.x + game[_loc1_].dirx * _loc2_.width; game[_loc1_].y = _loc2_.y + game[_loc1_].diry * _loc2_.height; game.clip[_loc1_]._x = game[_loc1_].x; game.clip[_loc1_]._y = game[_loc1_].y; } function moveBullets() { var i = 0; while(i < game.bullets.length) { var _loc1_ = game.bullets[i]; getMyCorners(_loc1_.x + _loc1_.speed * _loc1_.dirx,_loc1_.y + _loc1_.speed * _loc1_.diry,_loc1_); if(_loc1_.downleft && _loc1_.upleft && _loc1_.downright && _loc1_.upright) { moveChar(_loc1_,_loc1_.dirx,_loc1_.diry); } else { _loc1_.clip.removeMovieClip(); delete game["bullet" + game.bullets[i].id]; game.bullets.splice(i,1); } var _loc3_ = 0; while(_loc3_ < game.currentEnemies.length) { var name = "enemy" + game.currentEnemies[_loc3_].id; var _loc2_ = game[name]; var xdist = _loc1_.x - _loc2_.x; var ydist = _loc1_.y - _loc2_.y; if(Math.sqrt(xdist * xdist + ydist * ydist) < _loc1_.width + _loc2_.width) { _loc2_.clip.removeMovieClip(); delete game["enemy" + game.currentEnemies[_loc3_].id]; _loc1_.clip.removeMovieClip(); delete game["bullet" + game.bullets[i].id]; game.bullets.splice(i,1); myEnemies[game.currentMap][_loc2_.id] = 0; game.totalScores += 100; _root.below_mask.scoreShow = game.totalScores; } _loc3_ = _loc3_ + 1; } i++; } } function detectKeys() { var _loc2_ = _root; below_mask.climbShow = char.climb; below_mask.flyShow = char.fly; below_mask.jumpShow = char.jump; moveTiles(); var _loc1_ = _loc2_.char; var _loc3_ = false; if(Key.isDown(38)) { if(checkUpLadder(_loc2_.char)) { _loc3_ = _loc2_.climb(_loc1_,-1); } else if(!_loc1_.jump) { _loc1_.onMovingTile = false; _loc1_.jump = true; _loc1_.jumpspeed = _loc1_.jumpstart; } } if(Key.isDown(32) && char.climb == false) { _loc1_.onMovingTile = false; _loc1_.fly = true; _loc1_.jump = false; _loc1_.flyspeed = _loc1_.flystart; } if(Key.isDown(39) && _loc1_.jump == false) { getMyCorners(_loc1_.x + _loc1_.speed,_loc1_.y,_loc1_); if(_loc1_.upright && _loc1_.downright) { _loc3_ = _loc2_.moveChar(_loc1_,1,0); } } if(Key.isDown(37) && _loc1_.jump == false) { getMyCorners(_loc1_.x - _loc1_.speed,_loc1_.y,_loc1_); if(_loc1_.downleft && _loc1_.upleft) { _loc3_ = _loc2_.moveChar(_loc1_,-1,0); } } else if(Key.isDown(40)) { if(!char.fly && !char.jump) { if(checkDownLadder(_loc2_.char)) { _loc3_ = _loc2_.climb(_loc1_,1); } } } if(char.havinggun && Key.isDown(16) && getTimer() > _loc1_.lastshot + _loc1_.shootspeed) { _loc2_.shoot(_loc1_); } if(_loc1_.fly) { _loc3_ = _loc2_.fly(_loc1_); } if(_loc1_.jump && !_loc1_.fly) { _loc3_ = _loc2_.jump(_loc1_); } if(!_loc3_) { _loc1_.clip.char.gotoAndStop(1); } else { _loc1_.clip.char.play(); } if(enemyStop == false) { _loc2_.enemyBrain(); } _loc2_.moveBullets(); charChangeDir(); } function gameOver() { var _loc1_ = _root; clearInterval(_loc1_.f_timeCounter); removeMovieClip(_loc1_.tiles); if(game.doorclose == true) { _loc1_.gotoAndStop("gameover"); } } function init() { below_mask.timeShow = game.totalTimes; below_mask.lifeShow = game.totalLives; below_mask.scoreShow = game.totalScores; below_mask.bottleShow = game.totalBottles; f_timeCounter = setInterval(timeCounter,1000); } function timeCounter() { if(game.totalTimes > 0) { game.totalTimes--; if(game.totalTimes == 5) { trace(game.totalTimes); var _loc1_ = new Sound(); _loc1_.attachSound("alert"); _loc1_.start(0,3); } } else { _root.gameOver(); } below_mask.timeShow = game.totalTimes; } function clearScreen() { _root.score = below_mask.scoreShow; gameOver(); } function charChangeDir() { if(Key.isDown(38) && Key.isDown(37)) { char.clip.gotoAndStop("leftJump"); f_bottleTimeMc = false; bottleTimeMc.stop(); } else if(Key.isDown(38) && Key.isDown(39)) { char.clip.gotoAndStop("rightJump"); f_bottleTimeMc = false; bottleTimeMc.stop(); } else if(Key.isDown(38)) { char.clip.gotoAndStop("jump"); f_bottleTimeMc = false; bottleTimeMc.stop(); } if(Key.isDown(32) && Key.isDown(37)) { f_bottleTimeMc = true; bottleTimeMc.play(); char.clip.gotoAndStop("leftFly"); } else if(Key.isDown(32) && Key.isDown(39)) { f_bottleTimeMc = false; bottleTimeMc.play(); char.clip.gotoAndStop("rightFly"); } else if(Key.isDown(32) && char.climb == false) { bottleTimeMc.play(); f_bottleTimeMc = true; char.clip.gotoAndStop("fly"); } else if(Key.isDown(37)) { if(char.fly) { char.clip.gotoAndStop("leftFly"); } else { f_bottleTimeMc = false; bottleTimeMc.stop(); char.clip.gotoAndStop("leftRun"); } } else if(Key.isDown(39)) { if(char.fly) { char.clip.gotoAndStop("rightFly"); } else { f_bottleTimeMc = false; bottleTimeMc.stop(); char.clip.gotoAndStop("rightRun"); } } else if(Key.isDown(40)) { bottleTimeMc.stop(); f_bottleTimeMc = false; if(checkDownLadder(_root.char)) { char.clip.gotoAndStop("climb"); } else { char.clip.gotoAndStop("kneel"); } } else if(checkDownLadder(_root.char) && char.climb == true) { char.clip.gotoAndStop("climb"); } else { char.clip.gotoAndStop("stand"); } } function controlFunc() { var _loc1_ = _root; if(_loc1_.magicWaterUsed == false) { if(_loc1_.char.clip._alpha < 100) { _loc1_.char.clip._alpha += 2; } else { _loc1_.char.undead = false; } } _loc1_.detectKeys(); } function removeFinal_mc() { _root.final_mc.removeMovieClip(this); } _root.attachMovie("below_mask","below_mask",20000); below_mask._y = 320; var i = 1; while(i <= 4) { eval("below_mask.btn" add i)._visible = false; i++; } _root.attachMovie("bg_mask","bg_mask",20001); bgSoundFunc("bgSound1"); var lifeUpNum = 10000; var heroLife = 5; var everyGateBottle = 10; var addLife = 0; getURL("FSCommand:allowscale",false); f_bottleTimeMc = false; f_unDeadMc = false; f_enemyStopMc = false; magicWaterUsed = false; enemyStop = false; _root.score = 0; myMap2 = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1],[1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1],[1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1]]; myMap1 = [[1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1],[1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1],[1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; game = {tileW:40,tileH:40,doorclose:true,havingBottle:0,currentGate:1,currentMap:1,totalMap:2,itemBottle:4,totalTimes:120,totalLives:_root.heroLife,totalScores:_root.score,totalBottles:_root.everyGateBottle,bulletcounter:0,gateDoorX:8,gateDoorY:2}; game.bullets = new Array(); game.Tile0 = function() { }; game.Tile0.prototype.walkable = true; game.Tile0.prototype.frame = 1; game.Tile1 = function() { }; game.Tile1.prototype.walkable = false; game.Tile1.prototype.frame = 2; game.Doors = function(newmap, oldmap) { this.newmap = newmap; this.oldmap = oldmap; }; game.Doors.prototype.walkable = true; game.Doors.prototype.frame = 3; game.Doors.prototype.door = true; game.Tile2 = function() { }; game.Tile2.prototype = new game.Doors(2,1); game.Tile3 = function() { }; game.Tile3.prototype = new game.Doors(1,2); game.Tile4 = function() { }; game.Tile4.prototype = new game.Doors(3,2); game.Tile5 = function() { }; game.Tile5.prototype = new game.Doors(2,3); game.Tile6 = function() { }; game.Tile6.prototype = new game.Doors(4,3); game.Tile7 = function() { }; game.Tile7.prototype = new game.Doors(3,4); game.Tile8 = function() { }; game.Tile8.prototype = new game.Doors(5,4); game.Tile9 = function() { }; game.Tile9.prototype = new game.Doors(4,5); game.Tile10 = function() { }; game.Tile10.prototype.walkable = false; game.Tile10.prototype.frame = 2; game.Tile10.prototype.ladder = true; game.Tile10.prototype.item = "ladder"; game.Tile11 = function() { }; game.Tile11.prototype.walkable = true; game.Tile11.prototype.frame = 1; game.Tile11.prototype.ladder = true; game.Tile11.prototype.item = "ladder"; myItems = [[0],[[1,3,3],[1,12,2],[2,12,5],[2,1,2],[3,8,3],[3,9,3],[3,1,5],[3,2,5]],[[1,2,2],[1,11,1],[2,14,2],[2,2,4],[3,3,4],[3,4,4],[3,14,3],[3,14,4]]]; game.Item1 = function() { }; game.Item1.prototype.typeNum = 1; game.Item2 = function() { }; game.Item2.prototype.typeNum = 2; game.Item3 = function() { }; game.Item3.prototype.typeNum = 3; game.Item4 = function() { }; game.Item4.prototype.typeNum = 4; game.Item5 = function() { }; game.Item5.prototype.typeNum = 5; game.Item6 = function() { }; game.Item6.prototype.typeNum = 6; game.Item7 = function() { }; game.Item7.prototype.typeNum = 7; game.Item8 = function() { }; game.Item8.prototype.typeNum = 8; game.Item9 = function() { }; game.Item9.prototype.typeNum = 9; game.Item10 = function() { }; game.Item10.prototype.typeNum = 10; game.Item11 = function() { }; game.Item11.prototype.typeNum = 11; myEnemies = [[0],[[1,2,3],[2,12,3]],[[1,3,2],[2,8,8]]]; game.Enemyp1 = function() { }; game.Enemyp1.prototype.xMove = 1; game.Enemyp1.prototype.yMove = 0; game.Enemyp1.prototype.speed = -2; game.Enemyp2 = function() { }; game.Enemyp2.prototype.xMove = 1; game.Enemyp2.prototype.yMove = 0; game.Enemyp2.prototype.speed = 2; game.Enemyp3 = function() { }; game.Enemyp3.prototype.xMove = 1; game.Enemyp3.prototype.yMove = 0; game.Enemyp3.prototype.speed = 2; game.Enemyp4 = function() { }; game.Enemyp4.prototype.xMove = 1; game.Enemyp4.prototype.yMove = 0; game.Enemyp4.prototype.speed = 2; game.Enemyp5 = function() { }; game.Enemyp5.prototype.xMove = 1; game.Enemyp5.prototype.yMove = 0; game.Enemyp5.prototype.speed = -1; game.Enemyp6 = function() { }; game.Enemyp6.prototype.xMove = 1; game.Enemyp6.prototype.yMove = 0; game.Enemyp6.prototype.speed = -3; game.Enemyp7 = function() { }; game.Enemyp7.prototype.xMove = 1; game.Enemyp7.prototype.yMove = 0; game.Enemyp7.prototype.speed = 3; char = {xtile:7,ytile:5,speed:4,unDead:true,flystart:-14,jumpstart:-10,gravity:1.2,fly:false,jump:false,havinggun:false,shootspeed:1000,climb:false,onMovingTile:false}; buildMap(_root["myMap" + game.currentMap]); fall(_root.char); init(); stop(); _root.createEmptyMovieClip("controller",20002); controller.onEnterFrame = function() { controlFunc(); }; _root.onEnterFrame = function() { if(Key.isDown(17)) { pauseMc.play(); } };